<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Wally The Sentry Bot: Peggy/Peggy.ino File Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Wally The Sentry Bot
   &#160;<span id="projectnumber">0.2</span>
   </div>
   <div id="projectbrief">A silly Arduino project to play with sensors, Xbees and a Peggy 2.0 pegboard</div>
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('_peggy_8ino.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">Peggy/Peggy.ino File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Peggy2 I2C interface - reads streams of data over I2C and displays content on Peggy2 LED pegboard.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;util/delay.h&gt;</code><br/>
<code>#include &lt;avr/pgmspace.h&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for Peggy.ino:</div>
<div class="dyncontent">
<div class="center"><img src="_peggy_8ino__incl.png" border="0" usemap="#_peggy_2_peggy_8ino" alt=""/></div>
</div>
</div><table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac92ca5ab87034a348decad7ee8d4bd1b"></a><!-- doxytag: member="Peggy.ino::FPS" ref="gac92ca5ab87034a348decad7ee8d4bd1b" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___peggy.html#gac92ca5ab87034a348decad7ee8d4bd1b">FPS</a>&#160;&#160;&#160;80</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">OJ: Trying a bit lower than default 100 to give us more time to do other stuff. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadc7aa8fbcbc9aa9770faaf7dc8d8bf84"></a><!-- doxytag: member="Peggy.ino::DISP_BUFFER_SIZE" ref="gadc7aa8fbcbc9aa9770faaf7dc8d8bf84" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___peggy.html#gadc7aa8fbcbc9aa9770faaf7dc8d8bf84">DISP_BUFFER_SIZE</a>&#160;&#160;&#160;325</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">25 rows * 13 bytes per row == 325 (13 bytes due to 4bit per pixel =&gt; 12.5B) <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2134a5a06f0865c945543a1f07eba387"></a><!-- doxytag: member="Peggy.ino::MAX_BRIGHTNESS" ref="ga2134a5a06f0865c945543a1f07eba387" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___peggy.html#ga2134a5a06f0865c945543a1f07eba387">MAX_BRIGHTNESS</a>&#160;&#160;&#160;15</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">More than 4bits color depth doesn't really show on the display. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4869e3b194f22cc1fb6d8fff1401a587"></a><!-- doxytag: member="Peggy.ino::TWI_SLAVE_ID" ref="ga4869e3b194f22cc1fb6d8fff1401a587" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___peggy.html#ga4869e3b194f22cc1fb6d8fff1401a587">TWI_SLAVE_ID</a>&#160;&#160;&#160;34</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The I2C slave address. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8a49879af37eda43303df43fbeb1f032"></a><!-- doxytag: member="Peggy.ino::TWI_SRX_ADR_ACK" ref="ga8a49879af37eda43303df43fbeb1f032" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TWI_SRX_ADR_ACK</b>&#160;&#160;&#160;0x60</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga62efba4b17b779f57b6d97b93e8baaf3"></a><!-- doxytag: member="Peggy.ino::TWI_SRX_ADR_ACK_M_ARB_LOST" ref="ga62efba4b17b779f57b6d97b93e8baaf3" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TWI_SRX_ADR_ACK_M_ARB_LOST</b>&#160;&#160;&#160;0x68</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6a3f16e0e8e9489b4e16e4737641cdc9"></a><!-- doxytag: member="Peggy.ino::TWI_SRX_GEN_ACK" ref="ga6a3f16e0e8e9489b4e16e4737641cdc9" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TWI_SRX_GEN_ACK</b>&#160;&#160;&#160;0x70</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7b6f732344b34606fc40c580f85729bb"></a><!-- doxytag: member="Peggy.ino::TWI_SRX_GEN_ACK_M_ARB_LOST" ref="ga7b6f732344b34606fc40c580f85729bb" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TWI_SRX_GEN_ACK_M_ARB_LOST</b>&#160;&#160;&#160;0x78</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf50eff2541334d61c22456494294ef46"></a><!-- doxytag: member="Peggy.ino::TWI_SRX_ADR_DATA_ACK" ref="gaf50eff2541334d61c22456494294ef46" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TWI_SRX_ADR_DATA_ACK</b>&#160;&#160;&#160;0x80</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae0fc3d2689554a8e4aecf26d197d0970"></a><!-- doxytag: member="Peggy.ino::TWI_SRX_ADR_DATA_NACK" ref="gae0fc3d2689554a8e4aecf26d197d0970" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TWI_SRX_ADR_DATA_NACK</b>&#160;&#160;&#160;0x88</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga73d95a3380925b993d40d17a4a95c4ff"></a><!-- doxytag: member="Peggy.ino::TWI_SRX_GEN_DATA_ACK" ref="ga73d95a3380925b993d40d17a4a95c4ff" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TWI_SRX_GEN_DATA_ACK</b>&#160;&#160;&#160;0x90</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae57858316ede29c95e48984bb7876256"></a><!-- doxytag: member="Peggy.ino::TWI_SRX_GEN_DATA_NACK" ref="gae57858316ede29c95e48984bb7876256" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TWI_SRX_GEN_DATA_NACK</b>&#160;&#160;&#160;0x98</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf8725b19b1de9bdc5d2561109417fbbd"></a><!-- doxytag: member="Peggy.ino::TWI_SRX_STOP_RESTART" ref="gaf8725b19b1de9bdc5d2561109417fbbd" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TWI_SRX_STOP_RESTART</b>&#160;&#160;&#160;0xA0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae6a6800fa8811fea14adfc22736a5715"></a><!-- doxytag: member="Peggy.ino::TWI_NO_STATE" ref="gae6a6800fa8811fea14adfc22736a5715" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TWI_NO_STATE</b>&#160;&#160;&#160;0xF8</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0c0d979ddd60bc9d89f1b5c920f4e6bf"></a><!-- doxytag: member="Peggy.ino::TWI_BUS_ERROR" ref="ga0c0d979ddd60bc9d89f1b5c920f4e6bf" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TWI_BUS_ERROR</b>&#160;&#160;&#160;0x00</td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5686c229bdef50123688ab6cb1404230"></a><!-- doxytag: member="Peggy.ino::ISR" ref="ga5686c229bdef50123688ab6cb1404230" args="(TIMER2_COMPA_vect)" -->
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___peggy.html#ga5686c229bdef50123688ab6cb1404230">ISR</a> (TIMER2_COMPA_vect)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Timer interrupt function to redraw screen from data in frameBuffer (13*24)B. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8c548751802c5960b3092be28cc56d9f"></a><!-- doxytag: member="Peggy.ino::displayInit" ref="ga8c548751802c5960b3092be28cc56d9f" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___peggy.html#ga8c548751802c5960b3092be28cc56d9f">displayInit</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the display (sets up the SPI interface and interrupt) <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga30f6d25ed642afc09c74c58533cf34c9"></a><!-- doxytag: member="Peggy.ino::initTwiSlave" ref="ga30f6d25ed642afc09c74c58533cf34c9" args="(uint8_t addr)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___peggy.html#ga30f6d25ed642afc09c74c58533cf34c9">initTwiSlave</a> (uint8_t addr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the I2C (2-wire/TWI) interface in slave receiver mode. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___peggy.html#gaa48c1178898c8172cf135d8b02113804">getTwiByte</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a single byte from the I2C (2-wire/TWI) interface.  <a href="group___peggy.html#gaa48c1178898c8172cf135d8b02113804"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___peggy.html#gab0d9f92e9ab29b24c0e7f1c063d3cf3a">runCommand</a> (uint8_t <a class="el" href="group___mega_man.html#ga4d43e8212bdc9dbee866506f04effcea">cmd</a>)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Runs commands given by header 0xdeadbeef0101x where x is command.  <a href="group___peggy.html#gab0d9f92e9ab29b24c0e7f1c063d3cf3a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___peggy.html#ga7d6a0930e6a255bc0501b603a4bb7406">setPixel</a> (uint8_t x, uint8_t y, uint8_t gradient)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Puts a single pixel in the display.  <a href="group___peggy.html#ga7d6a0930e6a255bc0501b603a4bb7406"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___peggy.html#ga2e419873d364d00c07dc51d21954d819">drawLine</a> (uint8_t xa, uint8_t ya, uint8_t xb, uint8_t yb, uint8_t gradient)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws a line on the display.  <a href="group___peggy.html#ga2e419873d364d00c07dc51d21954d819"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___peggy.html#ga0942784ed06e8efefe2043b889de8afa">soundWave</a> (uint8_t x0, uint8_t y0, uint8_t radius, uint8_t gradient)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws a quarter circle on the display.  <a href="group___peggy.html#ga0942784ed06e8efefe2043b889de8afa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___peggy.html#gabfdc7d1e5b4b73e494b47de54f2d3fbb">serviceInputData</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a single byte from I2C and updates state accordingly.  <a href="group___peggy.html#gabfdc7d1e5b4b73e494b47de54f2d3fbb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga840291bc02cba5474a4cb46a9b9566fe"></a><!-- doxytag: member="Peggy.ino::main" ref="ga840291bc02cba5474a4cb46a9b9566fe" args="(void)" -->
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___peggy.html#ga840291bc02cba5474a4cb46a9b9566fe">main</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function - initialized the display, I2C, serial and pull-ups. Starts the never returning <a class="el" href="group___peggy.html#gabfdc7d1e5b4b73e494b47de54f2d3fbb" title="Gets a single byte from I2C and updates state accordingly.">serviceInputData()</a> function. <br/></td></tr>
<tr><td colspan="2"><h2><a name="var-members"></a>
Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa6be1c183e721e15be4597426e483fcb"></a><!-- doxytag: member="Peggy.ino::frameBuffer" ref="gaa6be1c183e721e15be4597426e483fcb" args="[DISP_BUFFER_SIZE]" -->
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>frameBuffer</b> [<a class="el" href="group___peggy.html#gadc7aa8fbcbc9aa9770faaf7dc8d8bf84">DISP_BUFFER_SIZE</a>]</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae3928a218a62b36f3db24d4716a676c4"></a><!-- doxytag: member="Peggy.ino::currentRowPtr" ref="gae3928a218a62b36f3db24d4716a676c4" args="" -->
uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>currentRowPtr</b> = frameBuffer</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7678898a53843a77e047b755171b9ac0"></a><!-- doxytag: member="Peggy.ino::currentRow" ref="ga7678898a53843a77e047b755171b9ac0" args="" -->
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>currentRow</b> = 0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga38e18697772ce4b5e924e000280f715a"></a><!-- doxytag: member="Peggy.ino::currentBrightness" ref="ga38e18697772ce4b5e924e000280f715a" args="" -->
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>currentBrightness</b> = 0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga120ae5a5f31b7548479805f557e09d17"></a><!-- doxytag: member="Peggy.ino::abortFlag" ref="ga120ae5a5f31b7548479805f557e09d17" args="" -->
volatile boolean&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___peggy.html#ga120ae5a5f31b7548479805f557e09d17">abortFlag</a> = false</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Flag to abort execution if external event demands it. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">PROGMEM prog_uchar&#160;</td><td class="memItemRight" valign="bottom"><b>skull</b> [325]</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">PROGMEM prog_uchar&#160;</td><td class="memItemRight" valign="bottom"><b>radar</b> [325]</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Peggy2 I2C interface - reads streams of data over I2C and displays content on Peggy2 LED pegboard. </p>
<p>This code is designed for an unmodified Peggy 2.0 board sold by evilmadscience.com The code configures the Peggy as an TWI (I2C) slave. Companion code for an Arduino allows it to act as an TWI master, so that it can transmit frames to the peggy. Core I2C and display code are exact duplicates of Jay Clegg's original code (see credits below). My additions are rather in expanding the usage of "built-in" graphical functions that allows putting more of the work in creating graphical effects on the shoulders of Peggy, rather than on the external sender (in my case called "MegaMan" in this project. This is done to offload MegaMan, who is also supposed to play MP3 files, communicate with the last member of the team ("Wally - the sensor turret), report status over serial and XBee to a PC and a log server respectively. I did that through using the expanded header the Jay had made but left unused as well as introduce one more state (6 in stead of Jay's original 5). I also use the flash of Peggy to store some pictures used in the animations.</p>
<p>Credits goes to: Jay Clegg (<a href="http://www.planetclegg.com/projects/Twi2Peggy.html">http://www.planetclegg.com/projects/Twi2Peggy.html</a>) for creating the original program that I have expanded. In reality, he deserves 90% of the credit for this program as the core components of this code is unchanged from Jay's original. If you want to do something similar to what I have been doing here, I really recommend starting with his version of the code, which is smaller, neater and probably a better starting point to understand what is going on. Please see <a href="http://www.planetclegg.com/projects/Twi2Peggy.html">http://www.planetclegg.com/projects/Twi2Peggy.html</a> for explanation of how all this is supposed to work. Windell H Oskay, (<a href="http://www.evilmadscientist.com/">http://www.evilmadscientist.com/</a>) for creating the Peggy 2.0 kit, and getting 16 shades of gray working Geoff Harrison (<a href="http://www.solivant.com/peggy2/">http://www.solivant.com/peggy2/</a>), for proving that interrupt driven display on the Peggy 2.0 was viable. </p>
</div></div><!-- contents -->
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="_peggy_8ino.html">Peggy.ino</a>      </li>

    <li class="footer">Generated on Thu May 24 2012 00:05:01 for Wally The Sentry Bot by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.6.1 </li>
   </ul>
 </div>


</body>
</html>
